//mumax 3.10 [linux_amd64 go1.14(gc) CUDA-10.1]
//GPU info: Tesla P100-PCIE-12GB(12198MB), CUDA Driver 11.6, cc=6.0, using cc=60 PTX
//(c) Arne Vansteenkiste, Dynamat LAB, Ghent University, Belgium
//This is free software without any warranty. See license.txt
//********************************************************************//
//  If you use mumax in any work or publication,                      //
//  we kindly ask you to cite the references in references.bib        //
//********************************************************************//
//output directory: ./SAF_Sky_Motion_RKKY_-0.00030_EField_40000.out/
SnapshotFormat = "png"
outputformat = OVF1_TEXT
repeat_units := 2
cellsizeXY := 1.5625e-9
cellsizeZ := 0.4e-9
Nx := 256
Ny := Nx
SetPBC(5, 5, 0)
SetGridSize(Nx, Ny, 2*repeat_units)
SetCellSize(cellsizeXY, cellsizeXY, cellsizeZ)
Msat_value := 580e3
Ms1i := Msat_value
Ms2i := Msat_value
Msat = Msat_value
Aex = 15e-12
Dind = 3e-3
Ku1 = 0.7e6
alpha = 0.04
AnisU = vector(0, 0, 1)
B_ext = vector(0, 0, 0)
MagLayers := Layer(0)
for i := 0; i < repeat_units; i++ {
	MagLayers = MagLayers.add(Layer(2 * i))
	DefRegion(i, Layer(2*i))
}
SetGeom(MagLayers)
for i := 0; i < repeat_units; i += 2 {
	Msat.SetRegion(i, Ms1i)
	Msat.SetRegion(1+i, Ms2i)
}
RKKYAFM := -0.00030
B_ext = vector(0, 0, 0)
TableAdd(B_ext)
TableAdd(Ku1)
TableAdd(m.region(0))
TableAdd(m.region(1))
TableAddVar(RKKYAFM, "RKKY", "j/m^2")
TableAdd(E_total)
for i := 0; i <= repeat_units-2; i++ {
	B_AFM1 := Masked(Mul(Const(RKKYAFM/(cellsizeZ*Ms1i)), shifted(m, 0, 0, -2)), layer(2*i))
	B_AFM2 := Masked(Mul(Const(RKKYAFM/(cellsizeZ*Ms2i)), shifted(m, 0, 0, 2)), layer(2*i+2))
	B_AFM := Add(B_AFM1, B_AFM2)
	Edens_AFM := Mul(Msat, Dot(Mul(Const(-1), m), B_AFM))
	AddFieldTerm(B_AFM)
	AddEdensTerm(Edens_AFM)
}
for i := 0; i < repeat_units; i++ {
	m.SetRegion(i, NeelSkyrmion(pow(-1, i), pow(-1, i+1)).scale(3, 3, 1))
}
saveas(m, "initialised_m")
B_ext = vector(0, 0, 0.050)
relax()
minimize()
saveas(m, "initial_m")
A := 40000
f := 100e9
Ku1 = 0.7e6 + A*sinc(2*pi*f*t)
tableautosave(2e-12)
Autosave(m, 0.5e-10)
run(10e-9)
//********************************************************************//
//Please cite the following references, relevant for your simulation. //
//See bibtex file in output folder for justification.                 //
//********************************************************************//
//   * Mulkers et al., Phys. Rev. B 95, 144401 (2017).
//   * Vansteenkiste et al., AIP Adv. 4, 107133 (2014).
//   * Exl et al., J. Appl. Phys. 115, 17D118 (2014).
